numpy 产生随机数方法总结 您所在的位置:网站首页 numpy 重复元素统计 排序 numpy 产生随机数方法总结

numpy 产生随机数方法总结

2023-08-06 07:17| 来源: 网络整理| 查看: 265

在矩阵应用的过程中,经常需要使用随机数,那么怎么使用numpy 产生随机数呢 ,为此专门做一个总结。

random模块用于生成随机数,下面是一些常用的函数用法:

numpy.random.seed(n) 其中n为任意指定

当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数

numpy.random.seed(0)

np.random.seed(0) a = np.random.rand(4) a array([0.5488135 , 0.71518937, 0.60276338, 0.54488318]) 主要介绍了生成符合均匀分布,正态分布等数组和随机选取数以及打乱数组顺序的方法。 1.np.random.rand 生成一个0到1之间的均匀分布 import numpy as np a = np.random.rand(2,3,4) print(a,a.shape) [[[0.18000344 0.03724064 0.15040061 0.93007827] [0.59423019 0.35439936 0.49193457 0.37633185] [0.83924196 0.4908405 0.49387427 0.98718216]] [[0.20072849 0.90163245 0.36710883 0.56668257] [0.61402791 0.46602958 0.56086072 0.83099671] [0.85196098 0.62774727 0.62826083 0.41739078]]] (2, 3, 4) 2.np.random.randn 返回一个符合标准正态分布的数组。 a = np.random.randn(2,3,4) print(a,a.shape) [[[ 0.32062268 0.08867553 -0.83741647 -0.21917891] [-0.06516898 -1.17123767 2.2403833 -0.77741757] [ 0.33532261 0.27309929 1.07279005 0.79952468]] [[ 0.18503166 0.90777579 -1.52837098 -1.23783753] [ 0.9327577 1.61876194 0.52191996 0.53451075] [-1.05485337 1.01472352 0.19376936 0.00278223]]] (2, 3, 4) 3.np.random.randint返回一定范围的一维或者多维整数

numpy.random.randint(low, high=None, size=None, dtype=’l’)

返回随机整数,范围区间为[low,high),包含low,不包含high

size为数组维度,元组形式,如(2,3)#2行3列

high没有填写时,默认生成随机数的范围是[0,low)

dtype指定数据类型,默认int

a = np.random.randint(low=6,high=10,size=(2,3,4),dtype='int') print(a,a.shape) [[[8 8 7 8] [8 8 6 9] [9 6 7 7]] [[7 7 9 8] [9 6 6 7] [8 9 7 7]]] (2, 3, 4) 4.np.random.choice从给定的一维数组中随机选择数生成随机数

numpy.random.choice(a, size=None, replace=True, p=None)

a为一维数组类似数据或整数;size为数组维度;p为数组中的数据出现的概率

a为整数时,对应的一维数组为np.arange(a)

a = np.random.choice(a = [3,5,6],size=(2,3,4),replace=True,p=[0.1,0.5,0.4]) print(a,a.shape) [[[5 6 3 5] [6 5 5 5] [6 5 6 6]] [[5 5 5 3] [6 5 6 6] [5 6 5 6]]] (2, 3, 4) 5.np.random.normal(loc=0.0, scale=1.0, size=None),生成符合指定分布的正态分布。 a = np.random.normal(loc=4,scale=6,size=(2,3,4)) print(a) [[[13.19667529 12.81615262 4.92968455 6.26897512] [-1.32671449 -7.88477881 1.9125271 4.93809381] [11.38174408 11.21427909 1.6760391 2.1861835 ]] [[-2.29131779 -4.52010762 -6.23762114 15.70465237] [ 0.94208691 1.37155419 -3.51677216 8.66494213] [-5.68338709 2.72355832 -1.37279937 6.32141499]]] 6.np.random.random(size=None),生成符合0到1的均匀分布数组。 a = np.random.random((2,3,4)) print(a) [[[0.19658236 0.36872517 0.82099323 0.09710128] [0.83794491 0.09609841 0.97645947 0.4686512 ] [0.97676109 0.60484552 0.73926358 0.03918779]] [[0.28280696 0.12019656 0.2961402 0.11872772] [0.31798318 0.41426299 0.0641475 0.69247212] [0.56660145 0.26538949 0.52324805 0.09394051]]] 7. np.random.ranf(size=None),生成符合0到1的均匀分布数组。 a = np.random.ranf((10)) a array([0.82894003, 0.00469548, 0.67781654, 0.27000797, 0.73519402, 0.96218855, 0.24875314, 0.57615733, 0.59204193, 0.57225191]) 8.np.random.uniform(low=0.0, high=1.0, size=None),生成符合指定均匀分布的数组 g=np.random.uniform(-1,1,10)#指定均匀分布 print(g) [ 0.07315842 0.79334259 0.98067789 -0.56620603 0.32615641 -0.47335525 -0.958698 0.51675731 -0.3599657 -0.23307221] 8.np.random.shuffle(x),随机打乱数组顺序 a = np.arange(10) np.random.shuffle(a) print(a) [6 3 4 9 0 8 1 5 2 7] 9. 产生其他分布的函数

binomial() ,二项分布

chisquare(),卡方分布

poisson(),泊松分布

uiform(),均匀分布

normal(),正态分布



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有